package com.glsc.ngateway.common.base.enums;


import com.glsc.ngateway.common.api.common.enums.RabbitExcQueConstant;

public enum RabbitQEnum {

    AM_DATA("AMdataQ", "gateway.queue.fwFlow.amdata", RabbitExcEnum.AM_DATA, null),
    AM_DATA_PRE("AMdataPreQ", "gateway.queue.pre.amdata", RabbitExcEnum.AM_DATA_PRE, RabbitQEnum.AM_DATA),

    AM_PRODUCT("AMproductQ", "gateway.queue.fwFlow.amproduct", RabbitExcEnum.AM_PRODUCT, null),
    AM_PRODUCT_PRE("AMproductPreQ", "gateway.queue.pre.amproduct", RabbitExcEnum.AM_PRODUCT_PRE, RabbitQEnum.AM_PRODUCT),

    GATEWAY_PLATFORM("GatewayFlatformQ", "gateway.queue.fwFlow.platform", RabbitExcEnum.GATEWAY_PLATFORM, null),
    GATEWAY_PLATFORM_PRE("GatewayFlatformPreQ", "gateway.queue.pre.platform", RabbitExcEnum.GATEWAY_PLATFORM_PRE, RabbitQEnum.GATEWAY_PLATFORM),

    GATEWAY_OPMANAGE("GatewayOpmanageQ", "gateway.queue.fwFlow.opmanage", RabbitExcEnum.GATEWAY_OPMANAGE, null),
    GATEWAY_OPMANAGE_PRE("GatewayOpmanagePreQ", "gateway.queue.pre.opmanage", RabbitExcEnum.GATEWAY_OPMANAGE_PRE, RabbitQEnum.GATEWAY_OPMANAGE),

    GATEWAY_OAFLOW_XIR("GatewayOaflowXirQ", "gateway.queue.fwFlow.oaflow.xir", RabbitExcEnum.GATEWAY_OAFLOW, null),
    GATEWAY_OAFLOW_XIR_PRE("GatewayOaflowXirPreQ", "gateway.queue.pre.oaflow.xir", RabbitExcEnum.GATEWAY_OAFLOW_PRE, RabbitQEnum.GATEWAY_OAFLOW_XIR),

    GATEWAY_EQUIPMENT_MODIFY("GatewayEquipmentModifyQ", "gateway.queue.fwFlow.equipmentModify", RabbitExcEnum.GATEWAY_ITFLOW, null),
    GATEWAY_EQUIPMENT_MODIFY_PRE("GatewayEquipmentModifyPreQ", "gateway.queue.pre.equipmentModify", RabbitExcEnum.GATEWAY_ITFLOW_PRE, RabbitQEnum.GATEWAY_EQUIPMENT_MODIFY),

    GATEWAY_PLATFORM_SYNC_FLOW("GatewayPlatformSyncFlowQ", "gateway.queue.fwFlow.oamobileaudit", RabbitExcEnum.GATEWAY_PLATFORM_SYNC_FLOW, null),
    GATEWAY_PLATFORM_SYNC_FLOW_PRE("GatewayPlatformSyncFlowPreQ", "gateway.queue.pre.oamobileaudit", RabbitExcEnum.GATEWAY_PLATFORM_SYNC_FLOW_PRE, RabbitQEnum.GATEWAY_PLATFORM_SYNC_FLOW),

    FIXED_INCOME("FixedIncomeQ", "gateway.queue.fwFlow.fixedincome", RabbitExcEnum.FIXED_INCOME, null),
    FIXED_INCOME_PRE("FixedIncomePreQ", "gateway.queue.pre.fixedincome", RabbitExcEnum.FIXED_INCOME_PRE, RabbitQEnum.FIXED_INCOME),

    RPA("RPAQ", "gateway.queue.fwFlow.rpa", RabbitExcEnum.RPA, null),
    RPA_PRE("RPAPreQ", "gateway.queue.pre.rpa", RabbitExcEnum.RPA_PRE, RabbitQEnum.RPA),

    DEMAND("DemandQ", "gateway.queue.fwFlow.demand", RabbitExcEnum.DEMAND, null),
    DEMAND_PRE("DemandPreQ", "gateway.queue.pre.demand", RabbitExcEnum.DEMAND_PRE, RabbitQEnum.DEMAND),

    OA_FLOW_WATCH_YSP("OaFlowWatchYspQ",RabbitExcQueConstant.GATEWAY_QUEUE_FLOW_OA_FLOW_WATCH_YSP, RabbitExcEnum.OA_FLOW_WATCH, null),
    OA_FLOW_WATCH_YSP_PRE("OaFlowWatchYspPreQ", RabbitExcQueConstant.GATEWAY_QUEUE_FLOW_OA_FLOW_WATCH_YSP_PRE, RabbitExcEnum.OA_FLOW_WATCH_PRE, RabbitQEnum.OA_FLOW_WATCH_YSP),
    ;

    private String beanName;
    private String routingKey;
    private RabbitExcEnum exchange;
    private RabbitQEnum forwardQueue;

    RabbitQEnum(String beanName, String routingKey, RabbitExcEnum exchange, RabbitQEnum forwardQueue) {
        this.beanName = beanName;
        this.routingKey = routingKey;
        this.exchange = exchange;
        this.forwardQueue = forwardQueue;
    }

    public String getBeanName() {
        return beanName;
    }

    public void setBeanName(String beanName) {
        this.beanName = beanName;
    }

    public String getRoutingKey() {
        return routingKey;
    }

    public void setRoutingKey(String routingKey) {
        this.routingKey = routingKey;
    }

    public RabbitExcEnum getExchange() {
        return exchange;
    }

    public void setExchange(RabbitExcEnum exchange) {
        this.exchange = exchange;
    }

    public RabbitQEnum getForwardQueue() {
        return forwardQueue;
    }

    public void setForwardQueue(RabbitQEnum forwardQueue) {
        this.forwardQueue = forwardQueue;
    }
}
